SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [dbo].[pje_porSancionesDisciplinarias] @idinscripcion integer,@puntaje float output,@resultado as integer output   AS
SET NOCOUNT ON
declare @topeSanciones as  integer
declare  @idAgente as int,@CargoGenerico as int,@AsignaturaGenerica as int, @idTipoConvocatoria as int ,@fechaLimite as datetime
DECLARE @Error INT

BEGIN TRANSACTION
SET @ERROR=0
	
select @topeSanciones= (select valor1 from tb_parametros where idparametro=99)
set @topeSanciones = isnull(@topeSanciones ,9999) --si no tiene tope le asigno uno imposible de superar

select  @idAgente=i.Agente,@cargoGenerico = i.CargoGenerico,@AsignaturaGenerica=i.AsignaturaGenerica,@idtipoConvocatoria=Conv.TipoConvocatoria,@FechaLimite=Conv.FechaLimite
	from 
	tb_inscripcionesConvocatorias i 
		join tb_Convocatorias conv on i.Convocatoria=conv.idConvocatoria 
	where i.idInscripcionConvocatoria=@idInscripcion

if  @idTipoConvocatoria  in (2,3,4,5,9)  --    TipoConvocatoria = 1 ingreso,interinatos y suplencias
begin
	declare @x as float,@r as float        --Sumo todas las amonestaciones,apercibimientos,conceptos regulares y conceptos insuficientes
	select @x=isnull(sum(case s.tipoSancion
		when  1 then 0.5
		when  2 then 1
		when  3 then (
		case       -- sumo todas las suspenciones
			when  s.CantidadDias between 1 and 5 then 1.50
			when  s.CantidadDias between 6 and 10 then 2
			when  s.CantidadDias between 11 and 20 then 2.50
			when  s.CantidadDias between 21 and 30  then 3
			else 0
		END
                                     )
		else 0
	end) ,0)
	FROM tb_sancionesAgentes s
	WHERE s.Agente=@idAgente and s.FechaPresentacion <= @FechaLimite --and s.tipoSancion  in(11,12)

		SET @Error = @@ERROR 
		IF @Error <> 0 GOTO Salir

	set @puntaje= round(@x,3) * (-1)

	if  @puntaje > @topeSanciones set @puntaje = @topeSanciones 
	set @resultado =1
end

--print 'Puntaje '
--print @puntaje

Salir:
IF @Error <> 0 
	ROLLBACK TRANSACTION
ELSE 
	COMMIT TRANSACTION
GO
GRANT EXECUTE ON  [dbo].[pje_porSancionesDisciplinarias] TO [Juntas]
GO
